Fix Browser Tool Settings and System Prompt Integration #1754
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes an issue where the browserToolEnabled setting was not correctly affecting the system prompt generation, causing the browser functionality to either always be included or always be excluded regardless of user preference.
Issue Details
When users toggled the "Enable Browser Tools" setting (browserToolEnabled) in the settings panel, this change was not properly reflected in the system prompt. The root cause was in the
generateSystemPromptfunction, which was only considering the model's capability (supportsComputerUse) but not checking the user's preference from state (browserToolEnabled).Technical Analysis
The issue occurred because:
generateSystemPromptfunction wasn't retrieving thebrowserToolEnabledsetting from stateapiConfiguration.openRouterModelInfo?.supportsComputerUse) to theSYSTEM_PROMPTfunctionThis is a pattern we need to watch for in the codebase - any place where we need to check both:
getCurrentCline()orapiConfiguration)Fix Implementation
The fix:
browserToolEnabledsetting from state ingenerateSystemPromptcanUseBrowserTool = (apiConfiguration.openRouterModelInfo?.supportsComputerUse ?? false) && (browserToolEnabled ?? true)SYSTEM_PROMPTThis ensures that browser tools are only enabled when BOTH the model supports computer use AND the user has enabled browser tools.
Additional Improvements
Testing
canUseBrowserToolcomputation in various scenariosThese test improvements should catch similar issues in the future.
Context
Implementation
Screenshots
How to Test
Get in Touch